/*
K的因子中只包含2 3 5。满足条件的前10个数是：2,3,4,5,6,8,9,10,12,15。
所有这样的K组成了一个序列S，现在给出一个数n，求S中 >= 给定数的最小的数。
例如：n = 13，S中 >= 13的最小的数是15，所以输出15。
Input
第1行：一个数T，表示后面用作输入测试的数的数量。（1 <= T <= 10000)
第2 - T + 1行：每行1个数N(1 <= N <= 10^18)
Output
共T行，每行1个数，输出>= n的最小的只包含因子2 3 5的数。
Input示例
5
1
8
13
35
77
Output示例
2
8
15
36
80
*/

#include <iostream>
#include <algorithm>
#include <string.h>
#include <string>
#include <vector>
#include <stdio.h>

#define ll long long
const ll INF = 1e18 + 100;

using namespace std;

ll v[200000];
ll t, m, num;

void Init()
{
    num = 0;
    for (ll i = 1; i < INF; i *= 2)
        for (ll j = 1; i * j < INF; j *= 3)
            for (ll k = 1; i * j * k < INF; k *= 5)
                v[num ++] = i * j * k;
}

int main()
{
//    freopen("in.txt", "r", stdin);
//    freopen("out.txt", "w", stdout);
    Init();
    // 第一个数没有用，不用排序，下面讨论的时候也要剔除
    sort(v + 1, v + num);
    cin >> t;
    while(t --)
    {
        cin >> m;
        // lower_bound(v + 1, v + num, m) - v   查找第一个大于指定元素m的下标
        cout << v[lower_bound(v + 1, v + num, m) - v] << endl;
    }
    return 0;
}
